因为一件小事被公司开除了
点蓝字关注,一起程序员弯道超车之路
有一位创业者朋友,他是公司负责人,带领着一个十几人的小团队,目前正在开发一款 SaaS 产品。
这位朋友自己也是码农,而且在大厂工作了好几年,所以非常重视代码质量,不允许项目有瑕疵。我看过他自己写的代码,确实工整漂亮,架构合理,逻辑清晰,命名规范,注释详细,简直就是理工男中的战斗机。
前段时间他招聘了一个小伙,因为刚入职还没有磨合好,所以他亲自给小伙 review 代码,帮助小伙矫正那些不良的编程习惯。
也不知道是小伙产生了抗拒心理,还是本性就大大咧咧,他总是对命名规范不太关注,经常在代码中使用不同的命名风格,而且还做不到见名知意。他认为名字只是一个细节,既不影响程序性能,也不影响程序逻辑,没有必要花费太多精力。
三番五次劝说无效,我的朋友感觉非常疲惫和吐血。大概两个月以后,我的朋友终于受不了了,再也不想给他擦屁股了,趁着他还未转正,开除员工的成本最低,干脆就一不做二不休,让他正式毕业了。
好吧,朋友的做法确实简单粗暴,快刀斩乱麻,我本来以为我是一个雷厉风行的人,但是在他面前我也只能是一个弟弟。
我不公开评价开除员工的做法对不对,免得被人吐槽屁股坐歪,这篇文章,我只想简单讨论一下代码命名的重要性。
首先,我们必须承认的是,良好的命名是优秀代码的标志之一,它让代码更容易阅读和理解,方便以后的迭代和升级。
不信你可以看看自己一个月之前写的代码,就连那些简单的函数和变量,你都不容易梳理清楚它们的具体含义。如果你再使用一个混乱的名字,我保证你会抓狂。
在实际开发中,我自己也会反复推敲变量的名字,删除了又重写,重写了又删除,来回折腾好几遍才满意。
嗯,作为一个程序员,多少都要有一些强迫症。
我们不妨看一个例子:
let x, y, z;
function f() {
//TODO:
}
这段代码是不是很难理解?x、y 和 z 分别代表什么?f() 有什么作用?
你再看下面这个例子:
let firstName, lastName;
function printFullName(firstName, secondName) {
//TODO:
}
很显然这段代码更容易阅读,瞟一眼就知道变量和函数的作用了。
另外,我们编写的代码也很容易出现错误,当名字具有描述性信息时,发现错误的成本就会降低(比如将错误的变量传递给了函数),否则你就得凭借记忆来猜测变量的含义。
你很容易记住一个变量的含义,但是你记不住 20 个变量的含义,当变量名字增多以后,你就会越来越混乱,搞不清楚它们是干嘛的。
不要相信记忆,它是不靠谱的,只有白纸黑字写下来的东西才不会出错。
最后,你还应该遵守某种命名规范,按照统一的风格来起名字。所谓命名规范,就是指使用大小写和分隔符来增强代码的可读性。
常见的命名规范有:
驼峰命名法
下划线命名法(蛇形命名法)
帕斯卡命名法
匈牙利命名法
不同命名规范的具体细节就不在这里展开讨论了,有兴趣的读者请自行百度。
不同的个人、公司、团队、项目可能会采用不同的命名规范,它们之间没有明确的好坏之分,只是一种约定成俗的习惯而已。
总起来说,代码命名应该遵守以下规则:
具有描述性信息,做到见名知意;
易于记忆和发音;
采用一种命名规范,让所有名字具有统一风格;
避免使用单个字母,除非从上下文中可以很清楚地知道它的含义(比如 for 循环中的 i);
名字不能说明问题的时候,请尽量写注释。
当你的名字不符合以上规则时,那么它很有可能就是一个糟糕的名字。
↑ 点击即可关注 ↑
关于我的近况
目前在 SaaS 创业中,如果你想成为技术高管或技术转创业,那必不可少的要懂商业、营销、产品等等。
也可以点击下方去阅读我 SaaS 创业的原创公号分享